//
// Created by yubin on 2021/4/5.
//

#ifndef DLINKLIST_DLINKLIST_H
#define DLINKLIST_DLINKLIST_H


namespace dl {
    using ElemType = int;

    typedef struct DNode {
        ElemType data;
        struct DNode* prior;
        struct DNode* next;
    } DNode, *DLinkList;

    void InitDLinkList(DLinkList& L);

    void DestroyDLinkList(DLinkList& L);

    DNode* GetItem(DLinkList& L, int i);

    DLinkList ListTailInsert(DLinkList &L);

    bool InsertNode(DLinkList& L, ElemType e, int i);

    bool DeleteNode(DLinkList& L, int i);

    bool PrintDLinkList(DLinkList& L);
}



#endif //DLINKLIST_DLINKLIST_H
